package team.first.movieapiv2.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.Objects;

/**
 * 电影演职员信息
 *
 * @author Rajab
 */
@ApiModel("电影演职人员信息")
public class Cast {

    @ApiModelProperty(value = "演职员编号", example = "1351356")
    private Integer id;

    @ApiModelProperty(value = "演职员中文名", example = "吴京")
    private String chineseName;

    @ApiModelProperty(value = "演职员英文名", example = "WuJing")
    private String englishName;

    @ApiModelProperty(value = "演职员角色类型", example = "1")
    private Integer roleTypeId;

    @ApiModelProperty(value = "片中饰演角色名", example = "冷锋")
    private String actAs;

    @ApiModelProperty(value = "影人豆瓣海报地址", example = "https://movie.douban.com/subject/24753810/photos?type=R")
    private String avatarUrl;

    @ApiModelProperty(value = "影人本地海报文件名", example = "1351356.jpg")
    private String avatar;

    /**
     * 获得演职员编号
     *
     * @return 演职员编号
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置演职员编号
     *
     * @param id 演职员编号
     * @return 当前对象引用
     */
    public Cast setId(Integer id) {
        this.id = id;
        return this;
    }

    /**
     * 获得演职员编号
     *
     * @return 演职员编号
     */
    public String getChineseName() {
        return chineseName;
    }

    /**
     * 设置演职员中文名
     *
     * @param chineseName 演职员中文名
     * @return 当前对象引用
     */
    public Cast setChineseName(String chineseName) {
        this.chineseName = chineseName;
        return this;
    }

    /**
     * 获得演职员英文名
     *
     * @return 演职员英文名
     */
    public String getEnglishName() {
        return englishName;
    }

    /**
     * 设置演职员英文名
     *
     * @param englishName 演职员英文名
     * @return 当前对象引用
     */
    public Cast setEnglishName(String englishName) {
        this.englishName = englishName;
        return this;
    }

    /**
     * 返回演职员角色类型编号
     *
     * @return 角色类型编号
     */
    public Integer getRoleTypeId() {
        return roleTypeId;
    }

    /**
     * 设置演职员角色类型
     *
     * @param roleTypeId 角色类型编号
     * @return 当前对象引用
     */
    public Cast setRoleTypeId(Integer roleTypeId) {
        this.roleTypeId = roleTypeId;
        return this;
    }

    /**
     * 返回片中饰演角色名
     *
     * @return 片中饰演角色名
     */
    public String getActAs() {
        return actAs;
    }

    /**
     * 设置片中饰演角色名
     *
     * @param actAs 饰演角色
     * @return 当前对象引用
     */
    public Cast setActAs(String actAs) {
        this.actAs = actAs;
        return this;
    }

    /**
     * 获取影人豆瓣海报地址
     *
     * @return 影人豆瓣海报地址
     */
    public String getAvatarUrl() {
        return avatarUrl;
    }

    /**
     * 设置影人豆瓣海报地址
     *
     * @param avatarUrl 影人豆瓣海报地址
     * @return 当前对象引用
     */
    public Cast setAvatarUrl(String avatarUrl) {
        this.avatarUrl = avatarUrl;
        return this;
    }

    /**
     * 获取影人本地海报文件名
     *
     * @return 影人本地海报文件名
     */
    public String getAvatar() {
        return avatar;
    }

    /**
     * 设置影人本地海报文件名
     *
     * @param avatar 影人本地海报文件名
     * @return 当前对象引用
     */
    public Cast setAvatar(String avatar) {
        this.avatar = avatar;
        return this;
    }


    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        Cast cast = (Cast) o;
        return id.equals(cast.id);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id);
    }

    @Override
    public String toString() {
        return "Cast{" +
                "id=" + id +
                ", chineseName='" + chineseName + '\'' +
                ", englishName='" + englishName + '\'' +
                ", roleTypeId=" + roleTypeId +
                ", actAs='" + actAs + '\'' +
                '}';
    }
}
